extends Node2D
@onready var board_tile_map: TileMapLayer = $"%BoardTileMap"
@onready var 提示箭头区: Node2D = %"提示箭头区"
@onready var 移动箭头区: Node2D = %"移动箭头区"

const 提示箭头场景 = preload("res://提示箭头/提示箭头.tscn")
const 移动箭头场景 = preload("res://提示箭头/移动箭头.tscn")
const 选择框场景 = preload("res://提示箭头/选择框.tscn")

func 显示箭头(箭头区:Node2D,箭头场景,start_pos:Vector2i,stop_pos:Vector2i):
	var start_position=board_tile_map.map_to_local(Vector2i(start_pos.y,start_pos.x))
	var stop_position=board_tile_map.map_to_local(Vector2i(stop_pos.y,stop_pos.x))
	var 提示箭头=箭头场景.instantiate()
	箭头区.add_child(提示箭头)
	提示箭头.position=start_position-Vector2(0,49.5)
	提示箭头.rotation= (stop_position-start_position).angle()
	var tw=create_tween().set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_LINEAR)
	tw.parallel().tween_property(提示箭头, "custom_minimum_size:x", stop_position.distance_to(start_position)+13, GameGlobal.动画速度)
	
func 清除箭头(箭头区:Node2D):
	for 箭头 in 箭头区.get_children():
		箭头区.remove_child(箭头)
		箭头.queue_free()

func 显示提示箭头(start_pos:Vector2i,stop_pos:Vector2i):
	显示箭头(提示箭头区,提示箭头场景,start_pos,stop_pos)
	
func 显示移动箭头(start_pos:Vector2i,stop_pos:Vector2i):
	var 选择框=选择框场景.instantiate()
	移动箭头区.add_child(选择框)
	var start_position=board_tile_map.map_to_local(Vector2i(start_pos.y,start_pos.x))
	选择框.position=start_position
	显示箭头(移动箭头区,移动箭头场景,start_pos,stop_pos)
	
func 清除提示箭头():
	清除箭头(提示箭头区)
	
func 清除移动箭头():
	清除箭头(移动箭头区)
